/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package ec.edu.ups.cidi.siia.plamdep.utils.configuracion;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
public class ConfiguracionAnalisiLexico 
{
    //coneccion a internet
    public static  ArrayList<String> etqStopWord=new ArrayList<String>(); //etiquetas eagle que son stop words
    public static String tipoAnalisis="consola";
    private static String script;
    public static String instruccionConsola="";
    public static String freelingdir="";
    public static String lenguaje="";
    
    public  ConfiguracionAnalisiLexico( )
    {
    	if(ConfiguracionGlobal.os.equalsIgnoreCase("windows"))
    		script=ConfiguracionGlobal.pathResources+"/freeling_consola_utils/analisis.bat";
    	else
    		script=ConfiguracionGlobal.pathResources+"/freeling_consola_utils/analisis.sh";
    	
    	instruccionConsola=script;
    	//valores de configuracion por defecto
    	etqStopWord.add("DA0MS0");
        etqStopWord.add("DA0FS0");
        etqStopWord.add("DA0FP0");
        etqStopWord.add("DA0MP0");
        etqStopWord.add("SPS00");
        etqStopWord.add("P00CN000");
        etqStopWord.add("DI0FS0");
        etqStopWord.add("DA0FS0");
    	
    	
    }
    
    public static void loadConfiguracionFromArchivo(File archivo )
    {
        try {
        	
            if(archivo.exists())
            {
               etqStopWord=new ArrayList<String>();
               FileReader fr = new FileReader (archivo);
               BufferedReader br = new BufferedReader(fr);
               String linea="";
               while((linea=br.readLine())!=null)
                 if(linea.trim().length()>0)
                     setearConfiguracion(linea);
               fr.close();
            }
            else
            {
            	System.out.println("Archivo de configuracion ConfiguracionAnalisiLexico no encontrado, matiene valores default");
            	
            }
         }
         catch(Exception e){e.printStackTrace();   }	
    	
    }
    
   public static void setearConfiguracion(String conf)
    {
        try{
        if(conf.trim().startsWith("#"))return;
        String[] separacion=conf.split("=");
        if(separacion.length!=2)return;
        
        
        String parametro=separacion[0].trim();
        String valor=separacion[1].trim();
        
        if(parametro.compareToIgnoreCase("etqStopWord")==0) etqStopWord.add(valor);
        else if(parametro.compareToIgnoreCase("instruccionConsola")==0)instruccionConsola=valor+" "+script;
        else if(parametro.compareToIgnoreCase("tipoAnalisis")==0)tipoAnalisis=valor;
        else if(parametro.compareToIgnoreCase("freelingdir")==0)freelingdir=valor;
        else if(parametro.compareToIgnoreCase("lenguaje")==0)lenguaje=valor;
        else  System.err.println(parametro+":"+valor+ " No seteados");
        
        
        
        
               
        }catch(Exception e){ System.err.println("Parametro no valido");}
    }
}